🎖️GitЯра🎖️
Node / meshtastic / Meshtastic-Android / files / .coderabbit / ast-grep-rules / presence-vs-sentinel-zero-float.yml
Displaying Raw • Download
.coderabbit/ast-grep-rules/presence-vs-sentinel-zero-float.yml 212bc596e37fd45e75b830e36cd825972f12cf79 (212bc596) Text, 1.05 KB
T8b949e# Class A of "Recurring Defect Classes" in .skills/code-review/SKILL.md, enforced mechanically.
T8b949e# 0 is a real reading on these scales, so a zero-guard silently drops a genuine measurement.
T8b949e# Humidity is deliberately excluded: 0 %RH is not physically reachable, and
T8b949e# EnvironmentMetricsForGraphingTest.humidity_zeroFilteredOut asserts that guard on purpose.
Tff7b72idTb4b4b4: Ta5d6ffpresence-vs-sentinel-zero-float
Tff7b72languageTb4b4b4: Ta5d6ffkotlin
Tff7b72severityTb4b4b4: Ta5d6ffwarning
Tff7b72messageTb4b4b4: Tb4b4b4>Tb4b4b4-
Tff7b72Zero-guard on a zero-inclusive scale drops real readings. 0 is valid for temperature,
Tff7b72current, voltage and soil moisture, so `(x ?: 0f) != 0f` hides a genuine measurement and
Tff7b72conflates it with "not reported". Use a null check — `x?.let { }` — as NodeItem.kt does for
Tff7b72ambient temperature. Humidity is the one legitimate exception and is excluded from this rule.
Tff7b72noteTb4b4b4: Tb4b4b4>Tb4b4b4-
Tff7b72See .skills/code-review/SKILL.md, "Recurring Defect Classes", class A.
Tff7b72ruleTb4b4b4:
Tff7b72patternTb4b4b4: Ta5d6ff"Ta5d6ff($FIELDTe6edf3 Ta5d6ff?:Te6edf3 Ta5d6ff0f)Te6edf3 Ta5d6ff!=Te6edf3 Ta5d6ff0fTa5d6ff"
Tff7b72constraintsTb4b4b4:
Tff7b72FIELDTb4b4b4:
Tff7b72regexTb4b4b4: Ta5d6ff"Ta5d6ff\\Ta5d6ff.(temperature|soil_temperature|co2_temperature|current|voltage|soil_moisture)$Ta5d6ff"
Served by rngit 1.5.2 - Generated in 0.06s